/**
 * 
 */
package com.enjoyor.soa.traffic.api.service.dubbo.idcs;

import com.enjoyor.soa.traffic.api.dto.idcs.VehiclePassDto;
import com.enjoyor.soa.traffic.util.pojo.Page;
import com.enjoyor.soa.traffic.util.pojo.ResultPojo;

import java.util.List;

/**
 * 过车记录服务
 * 
 * @author ly
 *
 */
@SuppressWarnings("rawtypes")
public interface DubboVehiclePassService {

	/**
	 * 获取过车数据列表
	 * 
	 * @param systemKey
	 *            系统秘钥
	 * @param token
	 *            系统令牌
	 * @param vehiclePlate
	 *            号牌号码
	 * @param plateType
	 *            号牌类型
	 * @param bayonetIds
	 *            卡口编号列表
	 * @param startTime
	 *            查询开始时间
	 * @param endTime
	 *            查询结束时间
	 * @param vehicleType
	 *            车辆类型
	 * @param startSpeed
	 *            查询速度区间
	 * @param endSpeed
	 *            查询速度区间
	 * @return List<VehiclePass> 过车数据列表
	 */
	public ResultPojo getVehiclePassList(String systemKey, String token, String vehiclePlate, String plateType,
			List<String> bayonetIds, String bayonetName, String startTime, String endTime, String vehicleType,
			int startSpeed, int endSpeed);

	/**
	 * 获取过车数据分页列表
	 * 
	 * @param systemKey
	 *            系统秘钥
	 * @param token
	 *            系统令牌
	 * @param vehiclePlate
	 *            号牌号码
	 * @param plateType
	 *            号牌类型
	 * @param bayonetIds
	 *            卡口编号列表
	 * @param startTime
	 *            查询开始时间
	 * @param endTime
	 *            查询结束时间
	 * @param vehicleType
	 *            车辆类型
	 * @param startSpeed
	 *            查询速度区间
	 * @param endSpeed
	 *            查询速度区间
	 * @param page
	 *            分页
	 * @return Page<VehiclePass>过车数据分页列表
	 */
	public ResultPojo getVehiclePassPage(String systemKey, String token, String vehiclePlate, String plateType,
			List<String> bayonetIds, String bayonetName, String startTime, String endTime, String vehicleType,
			int startSpeed, int endSpeed, String direction, Page page);

	/**
	 * 新增过车记录
	 * 
	 * @param systemKey
	 *            系统秘钥
	 * @param token
	 *            系统令牌
	 * @param vehiclePass
	 *            过车记录
	 * @return String 记录编号
	 */
	public ResultPojo insertVehiclePass(String systemKey, String token, VehiclePassDto vehiclePass);

	/**
	 * 从solr获取过车数据
	 * 
	 * @param id
	 *            过车编号
	 * @param licenseType
	 *            号牌类型
	 * @param vehType
	 *            车辆类型
	 * @param licenseNum
	 *            号牌号码
	 * @param startDay
	 *            开始时间
	 * @param endDay
	 *            结束时间
	 * @param pointIds
	 *            点位列表
	 * @param minSpeed
	 *            最小速度
	 * @param maxSpeed
	 *            最大速度
	 * @param direction
	 *            方向
	 * @param page
	 *            分页
	 * @return
	 */
	public ResultPojo getPageVehSearSolr(String id, String licenseType, String vehType, String licenseNum,
			String startDay, String endDay, List<String> pointIds, Integer minSpeed, Integer maxSpeed, String direction,
			String token, Page page);

	/**
	 * 从solr获取过车列表
	 * 
	 * @param id
	 *            过车编号
	 * @param licenseType
	 *            号牌类型
	 * @param vehType
	 *            车辆类型
	 * @param licenseNum
	 *            号牌号码
	 * @param startDay
	 *            开始时间
	 * @param endDay
	 *            结束时间
	 * @param pointIds
	 *            点位列表
	 * @param minSpeed
	 *            最小速度
	 * @param maxSpeed
	 *            最大速度
	 * @param direction
	 *            方向
	 * @return
	 */
	public ResultPojo getVehSearSolr(String id, String licenseType, String vehType, String licenseNum, String startDay,
			String endDay, List<String> pointIds, Integer minSpeed, Integer maxSpeed, String direction, String token);

	public ResultPojo listVehicleSpecial(String systemKey, String token, String vehicle_plate,
			String vehicle_plate_like, String vehicle_plate_type, String special_type);
}
